using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using UwinEducation.Application.Dtos;

namespace UwinEducation.Application.Common.Interfaces
{
    /// <summary>
    /// 系统配置服务接口
    /// </summary>
    public interface ISystemConfigService
    {
        /// <summary>
        /// 获取所有配置
        /// </summary>
        /// <returns>配置列表</returns>
        Task<IEnumerable<SystemConfigDto>> GetAllAsync();
        
        
        /// <summary>
        /// 根据键获取配置
        /// </summary>
        /// <param name="key">配置键</param>
        /// <returns>配置项</returns>
        Task<SystemConfigDto> GetByKeyAsync(string key);
        
        /// <summary>
        /// 根据键获取配置值
        /// </summary>
        /// <param name="key">配置键</param>
        /// <returns>配置值</returns>
        Task<string> GetValueByKeyAsync(string key);

        /// <summary>
        /// 更新配置
        /// </summary>
        /// <param name="updateDto">更新DTO</param>
        /// <returns>更新后的配置项</returns>
        Task<SystemConfigDto> UpdateAsync(UpdateSystemConfigDto updateDto);
        
       
    }
} 